/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Heroe;

/**
 *
 * @author Administrator
 */
public final class SuperHeroe extends PersonaValiente
                        implements Habilidades , Origen{
    Origen origen;
    private String nomSuper;
    private int nivelPromedio;
    private int nivelSuperFuerza;
    private int nivelSuperVelocidad;
    private int nivelCombate;
    private int nivelVuelo;
    private int nivelPsiquico;
    private int nivelRayoEnergia;
    private int nivelArtefacto;
    int invulnerabilidad;
    //private int nomArt;
    private int vista , olfato , respiracion , auditivo;
    private boolean tieneOno , esOno , usaOno , puedeOno;

    public SuperHeroe(Origen origen, String nomReal, String nomSuper, String sexo, int nivIntel,
                      //int nivelPromedio,
                      int nivelSuperFuerza,
                      int nivelSuperVelocidad,
                      int nivelCombate,
                      int nivelVuelo,
                      int nivelPsiquico,
                      int nivelRayoEnergia,
                      int nivelArtefacto,
                      int invulnerabilidad,
                      int vista, int olfato, int respiracion, int auditivo,
                      boolean tieneOno, boolean usaOno, boolean esOno, boolean puedeOno)
                     {
                       super(nomReal, nivIntel, sexo);
                       //this.nivelPromedio = getNivelPromedio();
                       this.nomSuper=nomSuper;
                       this.origen=origen;
                       this.nivelSuperFuerza=nivelSuperFuerza;
                       this.nivelSuperVelocidad=nivelSuperVelocidad;
                       this.nivelCombate=nivelCombate;
                       this.nivelVuelo=getNivelVuelo();
                       this.nivelRayoEnergia=getNivelRayoEnergia();
                       this.nivelPsiquico=nivelPsiquico;
                       this.nivelArtefacto=nivelArtefacto();
                       this.vista=vista;this.olfato=olfato;this.respiracion=respiracion;this.auditivo=auditivo;
                       this.tieneOno=tieneOno;
                       this.usaOno=usaOno;
                       this.esOno=esOno;
                       this.puedeOno=puedeOno;
    }

    public Origen getOrigen() {
        return origen;
    }

    public void setOrigen(Origen origen) {
        this.origen = origen;
    }



    public final int getNivelSuperHeroe() {
        int nivelSuperHeroe=(nivelHabilidades()+super.getNivIntel());
        return nivelSuperHeroe;
      
    }

    

    public String getNomSuper() {
        return nomSuper;
    }

    public void setNomSuper(String nomSuper) {
        this.nomSuper = nomSuper;
    }

    public int getAuditivo() {
        return auditivo;
    }

    public void setAuditivo(int auditivo) {
        this.auditivo = auditivo;
    }

    

    public int getNivelArtefacto() {
        return nivelArtefacto;
    }

    public void setNivelArtefacto(int nivelArtefacto) {
        this.nivelArtefacto = nivelArtefacto;
    }

    public int getNivelCombate() {
        return nivelCombate;
    }

    public void setNivelCombate(int nivelCombate) {
        this.nivelCombate = nivelCombate;
    }

    public int getNivelPsiquico() {
        return nivelPsiquico;
    }

    public void setNivelPsiquico(int nivelPsiquico) {
        this.nivelPsiquico = nivelPsiquico;
    }

    public boolean tieneRayoDeEnergia(boolean tieneOno) {
        return tieneOno;
    }

    public int getNivelRayoEnergia() {
        if(tieneRayoDeEnergia(tieneOno)== true){
            return nivelRayoEnergia;
        }else{
            return 0;
        }
    }

    public void setNivelRayoEnergia(int nivelRayoEnergia) {

        if(tieneRayoDeEnergia(tieneOno)== true){
            this.nivelRayoEnergia = nivelRayoEnergia;
        }else{
            this.nivelRayoEnergia = 0;
        }

    }

    public int getNivelSuperFuerza() {
        return nivelSuperFuerza;
    }

    public void setNivelSuperFuerza(int nivelSuperFuerza) {
        this.nivelSuperFuerza = nivelSuperFuerza;
    }

    public int getNivelSuperVelocidad() {
        return nivelSuperVelocidad;
    }

    public void setNivelSuperVelocidad(int nivelSuperVelocidad) {
        this.nivelSuperVelocidad = nivelSuperVelocidad;
    }

    public boolean puedeVolar(boolean puedeOno){
        return puedeOno;
    }

    public int getNivelVuelo() {
        if(puedeVolar(puedeOno)== true){
            return nivelVuelo;
        }else{
            return 0;
         }
    }

    public void setNivelVuelo(int nivelVuelo) {
        if(puedeVolar(puedeOno)== true){
            this.nivelVuelo = nivelVuelo;
        }else{
            this.nivelRayoEnergia = 0;
         }
    }

    public int getOlfato() {
        return olfato;
    }

    public void setOlfato(int olfato) {
        this.olfato = olfato;
    }

    public int getRespiracion() {
        return respiracion;
    }

    public void setRespiracion(int respiracion) {
        this.respiracion = respiracion;
    }

    public int getVista() {
        return vista;
    }

    public void setVista(int vista) {
        this.vista = vista;
    }

    public int nivelSentidos() {
        return (( vista + auditivo+ olfato + respiracion)/4);
    }

    public boolean esInvulnerable(boolean esOno) {
        return esOno;
    }
    public int invulnerabilidad(){
        if(esInvulnerable(usaOno)== true){
            return  invulnerabilidad;
        }else{
            return 0;
         }
    }
    
    public boolean usaArtefacto(boolean usaOno){
        return usaOno;
    }

   public int nivelArtefacto( ) {
        if(usaArtefacto(usaOno)== true){
            return  nivelArtefacto;
        }else{
            return 0;
         }
    }


    @Override
    public String toString(){return super.toString()+"\n"+
                            super.getNomReal()+" cuando es super heroe"+
                            " es "+getNomSuper()+"\n"+
                            "Es de origen "+getOrigen()+"\n"+
                            "El nivel de sus habilidades es: "+nivelHabilidades()+"\n"+
                            "Su nivel total como super heroes es: "+getNivelSuperHeroe();}

    public int nivelHabilidades() {
        int nivHabilidades=( getNivelSuperFuerza()
                            +getNivelSuperVelocidad()
                            +getNivelCombate()
                            +getNivelVuelo()
                            +getNivelRayoEnergia()
                            +getNivelArtefacto()
                            +nivelSentidos()
                            +getNivelPsiquico());
        return nivHabilidades/8;
    }






}
